#ifndef __APP_SERIAL_H__
#define __APP_SERIAL_H__
#include"app_device.h"
#include"termios.h"

// 波特率枚举
typedef enum
{
    BR_9600 = B9600,
    BR_115200 = B115200
} SERIAL_BAUD_RATE;

// 校验位枚举
typedef enum
{
    PARITY_NONE = 0, // 无校验位
    PARITY_ODD = PARENB | PARODD, // 奇校验位
    PARITY_EVEN = PARENB, // 偶校验位
} SERIAL_PARITY;

// 停止位枚举
typedef enum
{
    STOP_BIT_ONE = 0, // 1位停止位
    STOP_BIT_TWO = CSTOPB, // 2位停止位
} SERIAL_STOP_BIT;

/**
 * @brief 设置波特率
 */
int app_serial_set_baudrate(int fd, SERIAL_BAUD_RATE baudrate);


/**
 * @brief 设置停止位
 */
int app_serial_set_stopbit(int fd, SERIAL_STOP_BIT stopbit);


/**
 * @brief 设置校验位
 */
int app_serial_set_parity(int fd, SERIAL_PARITY parity);

/**
 * @brief 设置原始模式
 */
int app_serial_set_makeraw(int fd );

/**
 * @brief 设置是否阻塞
 * @param isblock 是否阻塞 1 阻塞 0 非阻塞
 */
int app_serial_isblock(int fd ,int isblock);


int app_serial_init(app_device_t *device);
 



#endif /* __APP_SERIAL_H__ */